Estoy tratando de definir un botón ("Cancelar") en React para cerrar toda la aplicación de reacción pero no la ventana.
<Button onClick={() => window.close()} className={buttonClassses.join(' ')} size="large" variant="contained" color="secondary"> {props.cancel}
¿Qué debo hacer en lugar de onClick={() => window.close()}?
Esto cerrará la pestaña del navegador pero no todo el navegador.
window.open("about:blank", "_self"); window.close();
Espero eso ayude
Bueno, sí, es posible que pueda llamar a esta representación condicional en la que debe hacer esto en el estado del controlador.
en mi código, puede presionar el botón esc en el que estoy manejando un estado que en App.js representará la interfaz de usuario en la base condicional
por favor revise el siguiente código y para una demostración haga clic aquí
Después de ejecutar la demostración, haga clic en el botón ESC que alterna ambas UI
sabemos que nuestra aplicación de reacción comienza desde index.js o app.js, por lo que podemos cerrar todos los componentes en App.js y, en lugar de eso, podemos mostrar alguna interfaz de usuario.
import React, { Component } from 'react'; export default class App extends Component { constructor(props) { super(props); this.state = { closeMyApp: true, }; } escFunction = (event) => { if (event.keyCode === 27) { this.setState({ closeMyApp: !this.state.closeMyApp }); } }; componentDidMount() { document.addEventListener('keydown', this.escFunction, false); } componentWillUnmount() { document.removeEventListener('keydown', this.escFunction, false); } render() { if (this.state.closeMyApp) { return ( <div> <h1>All App Componenet in this section</h1> <p>App is runing!</p> </div> ); } else { return ( <> <h1>App is closed</h1> <h3>You can set some UI here like</h3> </> ); } } }